project(samplesource)

find_package(LibUSB)

if(V4L-RTL)
    FIND_LIBRARY (LIBV4L2 v4l2)
    FIND_PATH (LIBV4L2H libv4l2.h)
#   add_subdirectory(v4l-rtl)
endif()
if(V4L-MSI)
    FIND_LIBRARY (LIBV4L2 v4l2)
    FIND_PATH (LIBV4L2H libv4l2.h)
#   add_subdirectory(v4l-msi)
endif()

find_package(LibAIRSPY)
if(LIBUSB_FOUND AND LIBAIRSPY_FOUND)
    add_subdirectory(airspy)
endif(LIBUSB_FOUND AND LIBAIRSPY_FOUND)

find_package(LibAIRSPYHF)
if(LIBUSB_FOUND AND LIBAIRSPYHF_FOUND)
    add_subdirectory(airspyhf)
endif(LIBUSB_FOUND AND LIBAIRSPYHF_FOUND)

find_package(LibBLADERF)
if(LIBUSB_FOUND AND LIBBLADERF_FOUND)
    add_subdirectory(bladerf1input)
    add_subdirectory(bladerf2input)
endif(LIBUSB_FOUND AND LIBBLADERF_FOUND)

if(LIBUSB_FOUND AND UNIX)
    FIND_PATH (ASOUNDH alsa/asoundlib.h)
    FIND_LIBRARY (LIBASOUND asound)
endif()
if(LIBASOUND AND ASOUNDH)
    add_subdirectory(fcdpro)
    add_subdirectory(fcdproplus)
endif()

find_package(LibHACKRF)
if(LIBUSB_FOUND AND LIBHACKRF_FOUND)
    add_subdirectory(hackrfinput)
endif(LIBUSB_FOUND AND LIBHACKRF_FOUND)

find_package(LimeSuite)
if(LIBUSB_FOUND AND LIMESUITE_FOUND)
    add_subdirectory(limesdrinput)
endif(LIBUSB_FOUND AND LIMESUITE_FOUND)

find_package(LibPerseus)
if(LIBUSB_FOUND AND RX_SAMPLE_24BIT AND LIBPERSEUS_FOUND)
    message(STATUS "Server: add Persesus plugin")
    add_subdirectory(perseus)
endif(LIBUSB_FOUND AND RX_SAMPLE_24BIT AND LIBPERSEUS_FOUND)

find_package(LibIIO)
if(LIBUSB_FOUND AND LIBIIO_FOUND)
    add_subdirectory(plutosdrinput)
endif(LIBUSB_FOUND AND LIBIIO_FOUND)

find_package(LibRTLSDR)
if(LIBUSB_FOUND AND LIBRTLSDR_FOUND)
    add_subdirectory(rtlsdr)
endif(LIBUSB_FOUND AND LIBRTLSDR_FOUND)

find_package(CM256cc)
if(CM256CC_FOUND)
    add_subdirectory(remoteinput)
endif(CM256CC_FOUND)

find_package(LibMiriSDR)
if(LIBUSB_FOUND AND LIBMIRISDR_FOUND)
    add_subdirectory(sdrplay)
    message(STATUS "LibMiriSDR found")
else(LIBUSB_FOUND AND LIBMIRISDR_FOUND)
    message(STATUS "LibMiriSDR NOT found")
endif(LIBUSB_FOUND AND LIBMIRISDR_FOUND)

find_package(LibXTRX)
if(LIBXTRX_FOUND)
	add_subdirectory(xtrxinput)
endif(LIBXTRX_FOUND)

find_package(SoapySDR)
if(LIBUSB_FOUND AND SOAPYSDR_FOUND)
	add_subdirectory(soapysdrinput)
	message(STATUS "SoapySDR found")
else()
	message(STATUS "SoapySDR not found")
endif()

if (BUILD_DEBIAN)
    add_subdirectory(airspy)
    add_subdirectory(airspyhf)
    add_subdirectory(bladerf1input)
    add_subdirectory(bladerf2input)
    add_subdirectory(hackrfinput)
    add_subdirectory(limesdrinput)
    add_subdirectory(perseus)
    add_subdirectory(plutosdrinput)
    add_subdirectory(rtlsdr)
    add_subdirectory(remoteinput)
    add_subdirectory(sdrplay)
endif (BUILD_DEBIAN)

add_subdirectory(filesource)
add_subdirectory(testsource)
add_subdirectory(localinput)